This invention relates to optical scanners and signal processors used therein and more particularly to bar code scanners having multi-bit digitizers used to detect a pattern of optically reflective/non reflective white space/black bar indicia and provide multi-bit digital signal representations of such indicia.
The invention further relates to a method of scanning indicia using selective sampling, particularly although not exclusively to a method of reading bar codes using a laser scanner. The invention further relates to a digitizer, for example a non-linear edge strength digitizer, to a signal processing apparatus in particular such an apparatus including a matched filter for bar code symbol reading, and to a signal processing apparatus, in particular such an apparatus including an automatic deblurring arrangement.
As is known in the art, optical scanners and signal processors used therein, have a wide range of applications. One such application is in reading bar codes provided on products. Such optical scanners are generally referred to as bar code scanners. Signals produced by the scanners are typically fed to computing apparatus for decoding and thereby provide an identification of the product to which the bar code is applied. Examples are found in almost every supermarket, convenience store, department store, etc., as well as in warehouses and factories which use such bar code scanners for inventory and production control.
Various optical readers and optical scanning systems have been developed heretofore for reading bar code symbols appearing on a label or on the surface of an article. The bar code symbol itself is a coded pattern of indicia comprising a series of adjacent bars and spaces of various widths, the bars and spaces having different light reflecting characteristics.
A number of different bar code standards or symbologies exist. These symbologies include, for example, UPC/EAN, Code 128, Codabar, and Interleaved 2 of 5. The readers and scanning systems electro-optically decode each symbol to produce multiple alphanumerical characters that are intended to be descriptive of the article or some characteristic thereof. Such characters are typically represented in digital form as an input to a data processing system for applications in point-of-sale processing, inventory control, and the like. Scanning systems of this general type have been disclosed, for example, in U.S. Pat. Nos. 4,251,798; 4,360,798; 4,369,361; 4,387,297; 4,409,470 and 4,460,120, all of which have been assigned to Symbol Technologies, Inc. As disclosed in some of the above patents, one commonly used example of such a scanning system functions by scanning the laser beam in a line across a symbol. The symbol, composed of alternating, rectangular, reflective and non-reflective segments of various widths, reflects a portion of this laser light. A photo detector then detects this reflected light and creates an electrical signal indicative of the intensity of the received light. The electronic circuitry or software of the scanning system decodes the electrical signal creating a digital representation of the data represented by the symbol scanned.
Typically, a scanner includes a light source such as a gas laser or semiconductor laser that generates a light beam. The use of semiconductor lasers as the light source in scanner systems is especially desirable because of their small size, low cost and low power requirements. The light beam is optically modified, typically by a lens, to form a beam spot of a certain size at a prescribed distance. It is preferred that the beam spot size be no larger than approximately the minimum width between regions of different light reflectivities, i.e. the bars and spaces of the symbol.
A scanner also includes a scanning component and a photo detector. The scanning component may either sweep the beam spot across the symbol and trace a scan line across the past the symbol, or scan the field of view of the scanner, or do both. The photo detector has a field of view which extends across and slightly past the symbol and functions to detect light reflected from the symbol. The analog electrical signal from the photo detector is first typically converted into a pulse width modulated digital signal, with the widths corresponding to the physical widths of the bars and spaces. This signal is then decoded according to the specific symbology into a binary representation of the date encoded in the symbol to the alphanumeric characters so represented.
In the prior art described above, a digitizer circuit may be used to translate the analog signal into a digital representation called a Digital Bar Pattern (or DBP). This simple digital representation of the data works extremely well in many situations, although it may sometimes be susceptible to unrecoverable errors if the bar code symbol to be read has substantial noise associated with it. With this prior art representation, a single extra edge detected or shifted due to noise may prevent proper decoding.
One straightforward way to acquire a more accurate representation of the bar code, for example for more aggressive or adaptive decoding, would be to sample the analog signal above the Nyquist rate, store the analog signal in memory, and then apply digital signal processing (DSP) techniques. This solution is, however, very expensive due to the large amount of samples required and the high speed processing that is necessary.
There is accordingly a need to provide a relatively cheap and reliable method of decoding an indicia (for example a bar code symbol) after the optical detection system has transduced it into a distorted analog waveform. Such a need is particularly acute where it is desired to decode the symbol aggressively, that is by attempting to decode after a single scan.
It is an object of the present invention to aim to meet this need.
It is a further object of the invention to provide an efficient and economical means of acquiring an improve representation of the bar code signal.
Where the analog signal representing the indicia that has been read is analyzed so as only to present the times at which edges (transitions between bars and spaces)--(DBP) are presented to the decoder, then not enough information is available for an optimum decode. In particular the decoder cannot analyze the signal applying different noise thresholds on the same scan data stream. To overcome this problem an edge strength value can be presented to the decoder along with the edge times having a sign indicating the edge type (bar to space or space to bar) as a result of which the decoder can try different noise thresholds for the same scan data stream by adaptably adding or removing edges based on their strengths. It is desired, however, to provide a system capable of operating in that manner using the minimum required electronics and parts thus giving rise to simplified manufacture and lower costs. It is further desired to arrive at an arrangement suitable both for standard and high speed scan engines.
It has also been established that in the scanning of printed indicia such as bar codes, the signal processing circuitry has to filter the received signal and detect the edges in the signal which originate from the bar to space or space to bar transitions in the printed bar code. Many techniques currently exist for carrying out this operation; known filters include the "real-pole", "Bessel" and "Butterworth" systems. Similarly, various types of edge detectors have been proposed including non-linear devices such as a capacitor for looking for a change in the signal. In other systems, a first derivative signal is established from the input signal and the peaks of the first derivative are detected representing transitions. A second derivative signal can also be taken in which the zero crossing point is identified representing the peak of the first derivative. Such systems are known as first derivative digitizers and second derivative digitizers respectively.
A problem in known systems is that of detecting the edges of transitions whilst simultaneously suppressing the noise in the signal. While solutions to this problem have been proposed in the communication industry, those solutions cannot be applied directly to the reading of printed indicia such as bar code symbols. For example in a communication system the bit rate is fixed but in a bar code scanner the bit rate, which is the inverse of the duration of the smallest bar or space, changes depending on the bar density, the scanning distance and the scanning speed. In addition, although most scanners have a fixed scan rate, the instantaneous scan speed in such a scanner will vary within a single scan, dependent on the location in the scan line. The scan rate of scanners can also depend on the mode of operation. Furthermore, in communication systems a bit synchronisation clock is available or can be extracted for determining when to sample the output of a filter, but in a bar code scanning system such a clock is not available and cannot be extracted as the scan speed is never constant. In particular, therefore, it is desired to solve the problems of filtering in a system that is not synchronised (with no external clock available).
It is known that the laser beam in a scanner converges to a waist and then diverges again, and that, given a fixed laser focus, the bar code image begins to blur as the scanning distance increases in either direction away from the focused position (waist) of the laser beam. This blurring is caused by the growing laser spot which has a near Gaussian intensity profile that effectively filters the sharp edges of the printed bar code. If the desired reading distance changes, therefore, this filtering effect makes edge detection difficult and erroneous and it is desired to solve that problem.